The use of numerical controlled (NC) machines (e.g., drilling machines, boring machines, milling machines, etc.) in manufacturing provides many advantages. For example, the use of NC machines helps ensure consistent results when machining parts (e.g., airplane parts) and minimizes human error (allowing for a tight tolerance range). Moreover, NC machines significantly reduce the cost of generating parts that have complex geometry.
While NC machines provide many advantages and reduce the amount of human labor needed for machining parts, it is still necessary for a human NC programmer to write the code (i.e., computer-readable instructions) that controls the NC machine so that it can perform processes with respect to a part. Some computer aided drafting/computer aided manufacturing (CAD/CAM) software packages, such as CATIA V5, provide NC programming functionality and tools to simplify the NC programming processes. However, despite the availability of software packages that make NC programming easier, NC programmers may still be plagued with complexity, uncertainty, and inconsistency when faced with the task of writing NC program code. For example, because many NC machines have interchangeable tools and can perform multiple processes, there are often many options available for manufacturing the same part or part feature, a problem which current NC programming packages do not currently address.
In an attempt to provide uniform standards for NC programmers and address some of the problems described above, many parts manufacturers have established predetermined practices for parts manufacturing. A particular industry's or manufacturer's preferred techniques, sometimes called “best practices” provide an example of such predetermined practices. For example, a best practice for creating any given part may specify the machine, the tool, and processes to be used (e.g., the drill bit to use, the angle at which to drill a hole, the speed at which a drill bit should move, etc.). In general, incorporating predetermined practices into NC programming allows for efficient use of available resources and consistency in output. However, current techniques for incorporating predetermined practices into NC programming are cumbersome and limited. For example, best practices are typically implemented as a set of external written instructions and guidelines that the NC programmer must either memorize or manually reference while using software packages such as CATIA to write NC programs. Then, during programming, the NC programmer may consult data tables that supply optimum parameters for a given machining scenario and then may manually enter the appropriate data.